package com.twohand.admin.Service;

import com.twohand.admin.Dto.MenuAddDto;
import com.twohand.admin.Entity.Menu;
import com.twohand.admin.Vo.MenuParentOptions;
import com.twohand.admin.Vo.SelectOptions;

import java.util.List;

public interface MenuService {
    List<Integer> getMenuIdList(Integer id);
    List<String>  getPermissionByUserId(Integer id);
    //先查出所有的数据再调用方法生成树状数据
    List<Menu> getMenuByParentId(Integer parentId);
    List<Menu> getMenuByParentId(Integer parentId, List<Integer> menuIdList);
    List<Menu> getTreeMenuList(List<Menu> menuList, List<Integer> menuIdList);
    List<Menu> getDeepTreeMenuList(List<Menu> menuList, List<Integer> menuIdList);
    List<Menu> getUserMenuList(Integer id);
    //返回所有菜单 树状权限
    List<Menu> getBaseMenu();

    //返回可以当作父级的项
    List<MenuParentOptions> getParent();

    //拼凑菜单类型
    List<SelectOptions> getMenuType();

    //添加菜单
    Boolean addMenu(Menu menu);

    /**
     * 菜单更新
     * @param menu
     * @return
     */
    Boolean updateMenu(Menu menu);

    /**
     * 删除菜单
     * @param id
     * @return
     */
    Boolean delMenu(Integer id);

}
